$(function(){
	 $.ajaxSetup({cache:false});//ajax调用不使用缓存 
	 $("#tree").height(getIframeSize().height+2);	 	 
	 //方法权限的加载
		if(!p_save){
			$("#operate span:eq(0)").html("");
		}
		
		if(!p_delete){
			$("#operate span:eq(1)").html("");
		}
		
		if(!p_addNewNode){
			$("#operate span:eq(2)").html("");
		}
	 //管理架构树加载
	$("#tree").tree({					
					data : { 
						async : true,
						opts : {						
							url : "frameex.do?type=frameexTreeLoading"
						}
					},
					callback:{
						beforedata:function(NODE, TREE_OBJ) {
							 return { dir : $(NODE).attr("id") || "" } ;	 
						}
						,
						onselect:function(NODE){
							selectFrame($(NODE).attr("id"));
						}
						,
						onopen : function(node, tree_obj) {//节点查找功能  
							tree_obj.children(node).click();
						},
						onload : function(tree_obj){
							$("#tree > ul > li").click();
						}
					},
					 lang: {
		            	loading: "数据加载中……"
		       		 },
			        ui: {
			            theme_name	: "classic"
			        }
				});
	
	//节点修改保存
	$("#saveButton").click(function(){
		if($.isEmpty("#frameID")){
			alert("请选择修改的节点");
			return false;
		}
		
		if($.isEmpty("#frameName")){
			alert("名称不能为空");
			$("#frameName").focus();
			return false;
		}
			
		$.post(
			"frameex.do?type=saveFrameex",
			{
				frameexID:$.trim($("#frameID").val()),
				frameexName:$.trim($("#frameName").val()),
				frameexParentID:$.trim($("#parentID").val()),
				frameexClass:$.trim($("#frameClass").val()),
				frameexFlag:$.getCheckboxValue("#frameFlag"),
				frameexStatus:$.getCheckboxValue("#frameStatus"),
				frameexMemo:$.trim($("#frameMemo").val())
			},
			function(xml){
				if($(xml).find("flag").text() == 1){
					alert("更新成功");
					$("#" + $.trim($("#frameID").val()) + " > a").text($.trim($("#frameName").val()));
				}else{
					alert($(xml).find("body").text());
				}
			},"xml"
		);
	});
	
	//节点删除
	$("#deleteButton").click(function(){
		if($.isEmpty("#frameID"))
		{
			alert("请选择要删除的节点");
			return false;
		}
		
		if(window.confirm("确定删除【"+$.trim($("#frameName").val())+"】?") == false)
		{
			return false;
		}
		
		$.post(
			"frameex.do?type=deleteFrameex",
			{
				frameexID:$.trim($("#frameID").val())			
			},
			function(xml){
				if($(xml).find("flag").text() == 1){
					alert("删除成功");
					$.tree.focused().remove();
					$("#parentID").val("");
					$("#frameID").val("");
					$("#frameName").val("");
					$("#frameType").val("");
					$("#frameClass").val("");
					$("#frameFlag").removeAttr("checked");
					$("#frameStatus").removeAttr("checked");
					$("#frameMemo").val("");
				}else{
					alert($(xml).find("body").text());
				}
			},"xml"
		);
	});
	
	//显示隐藏的新增子节点表单
	$("#addSubButton").click(function(){
		if($.isEmpty("#frameID")){
			alert("请选择要增加子节点的父结点");
			return false;
		}
		
		$("#editPanel").hide();
		$("#subAddPanel").show();
		
		$("#subParentID").val($("#frameID").val());
		$("#subParentName").val($("#frameName").val());
		
		$("#subFrameClass").val(parseInt($("#frameClass").val())+1);
		$("#subFrameStatus").attr("checked","checked");
		
		$("#subFrameName").val("");
		$("#subFrameFlag").removeAttr("checked");
		$("#subFrameMemo").val("");
	});
	
	//把显示的新增子节点表单通过取消按钮隐藏起来
	$("#subCancelButton").click(function(){
		$("#subAddPanel").hide();
		$("#editPanel").show();
	});
	
	//保存新增的子节点数据
	$("#subAddButton").click(function(){
		if($.isEmpty("#subFrameName")){
			alert("新增子结点名称不能为空");
			$("#subFrameName").focus();
			return;
		}	
		
		$.post(
			"frameex.do?type=addSubFrameex",
			{
				subFrameexParentID:$.trim($("#subParentID").val()),
				subFrameexName:$.trim($("#subFrameName").val()),
				subFrameexClass:$.trim($("#subFrameClass").val()),
				subFrameexStatus:$.getCheckboxValue("#subFrameStatus"),
				subFrameexFlag:$.getCheckboxValue("#subFrameFlag"),
				subFrameexMemo:$.trim($("#subFrameMemo").val())
			},
			function(xml){
				if($(xml).find("flag").text() == 1){					
					 //新增的节点不可能下面有子节点，所以isLast取值为'N'
					 var ulNode = $("<ul></ul>");
					 var liNode = $("<li></li>").addClass("frame").attr("id",$(xml).find("body").text()).html(" ");
					 var aNode = $("<a></a>").attr({href:"#",title:$.trim($("#subFrameName").val()),rel:$(xml).find("body").text()}).html($.trim($("#subFrameName").val()));
					 if($.getCheckboxValue("#subFrameStatus") == "N"){
					 	aNode.addClass("unStatus");
					 }
					 
					 aNode.prependTo(liNode);
					 liNode.appendTo($("#"+$.trim($("#subParentID").val())).children("ul"));
					 //增加last class属性
					 $("#"+$.trim($("#subParentID").val())).children("ul").children("li:").removeClass("last");
					 $("#"+$.trim($("#subParentID").val())).children("ul").children("li:last").addClass("frame last leaf");
						//如果增加的子节点的父节点是没有子节点的时，需要改变父节点的class属性
					 var str = $("#"+$.trim($("#subParentID").val())).hasClass("leaf");
					 var str1 = $("#"+$.trim($("#subParentID").val())).attr("class");
		
					 if(str == true){
						 $("#"+$.trim($("#subParentID").val())).removeClass();
						 $("#"+$.trim($("#subParentID").val())).addClass("frame open");
						 //
						 aNode.prependTo(liNode);
						 liNode.prependTo(ulNode);
						 ulNode.appendTo($("#"+$.trim($("#subParentID").val())));
						 $("#"+$.trim($("#subParentID").val())).children("ul").children("li").removeClass("last");
						 $("#"+$.trim($("#subParentID").val())).children("ul").children("li:last").addClass("frame last leaf");
					 }
						
					$("#subAddPanel").hide();
					$("#editPanel").show();
					alert("新增成功");
					 //当点击新增成功之后如果父节点是关闭状态使它自动弹开
					var classIsLeaf = $("#"+$.trim($("#subParentID").val())).hasClass("closed");
					if(classIsLeaf){
						$("#"+$.trim($("#subParentID").val())).click();
					}
				}else{
					alert($(xml).find("body").text());
				}
			},"xml"
		);
	});
});

function selectFrame(id){
	$("#subAddPanel").hide();
	$("#editPanel").show();

	$.post("frameex.do?type=selectFrameex",{
		frameexID:id
	},function(xml){
		$("#parentID").val($(xml).find("frameParentID").text());
		$("#frameID").val($(xml).find("frameID").text());
		$("#frameName").val($(xml).find("frameName").text());
		$("#frameClass").val($(xml).find("frameClass").text());
		$("#frameMemo").val($(xml).find("frameMemo").text());
		if($(xml).find("frameFlag").text() == "Y"){
			$("#frameFlag").attr("checked","checked");
			$("#addSubButton").hide();
		}else{
			$("#frameFlag").removeAttr("checked");
			$("#addSubButton").show();
		}
		
		if($(xml).find("frameStatus").text() == "Y"){
			$("#frameStatus").attr("checked","checked");
		}else{
			$("#frameStatus").removeAttr("checked");
		}
	});
}